1. Technical Field
The present invention relates to a method and system for data processing in general and, in particular, to a method and system for rebuilding the contents of a malfunctioned direct access storage device. Still more particularly, the present invention relates to a method and system for rebuilding the contents of a malfunctioned direct access storage device within a log-structured array.
2. Description of the Prior Art
A data storage system having multiple direct access storage devices (DASDs) may store data and other information in an arrangement called a log-structured file, which provides what is known as a log-structured array (LSA). Under the LSA, data are stored among multiple DASDs and any changes to these data are temporarily stored in a write buffer, also known as a memory segment. When the write buffer is filled, the changed data that were stored in the write buffer are sequentially recorded back to the DASDs. Thus, the data are stored in a sequential structure that can be characterized as an infinite tape or a log. Such log eliminates most disk-seek operations during data recording and retrieval. The data that are recorded back to the DASDs includes attributes, index blocks, directories, and other information utilized by the data storage system for data operation management.
Under the LSA environment, an LSA controller typically emulates one or more logical devices such that the physical nature of the DASDs is transparent to the operating system and any other application programs in the host computer. In other words, all read and write commands generated by the operating system and application programs are received and interpreted by the LSA controller so that a reference to a data file at a logical device is automatically mapped onto an appropriate disk platter and track-sector location of an appropriate physical device.
In addition, the recording area of each DASD is assigned to several consecutive physical areas called segment-columns. Typically, a physical segment-column of an LSA is configured to be the same size as a physical disk cylinder, which comprises all of the same-position tracks on all the platters within a DASD. As a result, a DASD within an LSA typically includes as many segment-columns as there are tracks on a single disk platter. Furthermore, the collection of disk-recording area comprising corresponding segment-columns from each of the DASDs within the LSA forms what is referred to as a segment.
One segment-column per segment is typically utilized to store parity information that is produced by a logical XOR operation on data stored in the remaining segment-columns of the same segment. For improved performance, the segment-columns containing the parity information are not all stored in the same DASD, but are distributed among various DASDs within the LSA. This ensures that a data rebuild can be performed accurately in the event of a DASD failure.
When a disk fails, the contents of the malfunctioned DASD are completely rebuilt and written onto a spare DASD. For each segment, all surviving segment-columns are read and XORed together to produce the data that is to be written to the spare DASD. Because of the large number of segment-columns involved, the rebuild process could be quite time-consuming. Consequently, it would be desirable to provide an improved method for rebuilding the contents of a malfunctioned DASD within the logstructured array in a more efficient manner.